The benefits of computer virtualization have been recognized as greatly increasing the computational efficiency and flexibility of a computing hardware platform. For example, computer virtualization allows multiple virtual computing machines (VMs, or “guests”) to run on a common computing hardware platform (referred to as a “host”), even when the software components, such as the guest operating systems of each virtual machine, differ. Similar to a physical computing hardware platform, virtual computing machines include storage media, such as virtual hard disks, virtual processors, guest physical memory, virtual devices, and other system components associated with a computing environment. In a typical virtualized machine architecture, a virtual hard disk stores a guest operating system, data, and application files for a virtual machine. Virtualization software receives disk read and write requests from guest software running on the virtual machine and maps the requests to a disk image file containing an image of the virtual disk on a data store accessible by the host. The disk image file is block-based, and contains file segments that map to disk blocks of the virtual disk. Thus, when the virtual machine reads a particular disk block, that request is mapped to a read of the corresponding segment of the disk image file, the contents of which are supplied to the virtual machine in a manner consistent with an ordinary disk read.
Server-based computing, such as available using computer virtualization architectures, allows a networked client computing system, remotely situated with respect to a server computing system, to access computing resources on the server. For example, a client computing system can use a remote desktop protocol such as Remote Desktop Protocol (RDP) Virtual Network Computing (VNC), or PCoIP to access a desktop remotely. A virtual desktop is a virtual computing system that operates as a desktop or workstation computer that an end user can interact with using the remote desktop protocol and client software and/or hardware. The client software and/or hardware transmits user input, such as keyboard and/or mouse input, to the remote computing system to be processed there, and receives display and other data, such as sound, for presentation to the user.
Server-based computing facilities may be used to centralize management of computing resources. However, one drawback is that a single host can only support a limited number of VMs. Thus, as the number of VMs increases, additional hosts are required. Various schemes have been devised to facilitate coordinated management of a large number of hosts. For example, one or more management servers may manage a large number of VMs and the networked clients that are using the VMs. These management servers also manage operation of the large number of hosts that provide the VMs.
To manage connectivity between the VMs and the networked clients, each management server performs a variety of management tasks. Further, the management servers coordinate with each other by sharing information about the particular hosts and networked clients that they are actively managing. To facilitate operation of the management servers in a coordinated manner, the management servers may be arranged in a cluster format so that they are configured to operate as a group of linked servers working together closely so that, in many respects, they form a single server.
When the number of management servers operating in a management server cluster is relatively small, coordination problems between the management servers are manageable. However, as the demand for more VMs increases, the number of management servers in the management server cluster must also increase to support the additional hosts required to provide the increased demand in VMs. That is, the size of an existing management server cluster is scaled up to accommodate an increasing number of users because only so many users, hosts, and the like can be supported by a single management server due to computing resource demands placed on an individual management server. At some point, the management server cluster becomes so large and complex that coordination problems arise between the management servers.
Further, the management servers within the management server cluster are likely performing many of the same tasks that are being performed by other management servers. Thus, when viewed from the management server cluster level, computational inefficiencies arise due to task duplication at the management servers.
And, as the management servers in a relatively large and complex management server cluster are attempting to coordinate their management activities with each other, collisions can arise when two or more management servers are trying to simultaneously use the resources of the management server cluster, such as executing operations on the same entities. Such collisions hinder coordinated operation of the management servers.